package com.naiterui.ehp.bs.im.network.protocl;

import org.apache.commons.lang3.StringUtils;

/**
 * 用于客户端与服务端的时间通知
 */
public class Event implements IChecker {

    /**
     * 消息通知类型
     * 0：客户端连接状态通知
     * 1：服务器消息通知
     */
    private Integer c;

    /**
     * 当分类为0时
     * 0：建立链接(登录)
     * 1：正常断开连接(登出，无PUSH)
     * 2：正常断开连接(切换应用到后台)
     * 3：连接意外中断(断网、断电)
     * 注：客户端登录后建立与MQTT的连接，然后订阅名称为自己用户ID的topic，并且设置遗嘱消息。遗嘱的topic名为 willDo
     * 当分类为1时
     */
    private Integer t;

    /**
     * 通知的附件信息
     * 例如：新增患者的ID等等
     */
    private String i;

    /**
     * 构造函数
     */
    public Event() {

    }

    /**
     * 构造函数
     */
    public Event(Integer c, Integer t, String i) {
        this.c = c;
        this.t = t;
        this.i = i;
    }

    /**
     * 属性检测
     */
    @Override
    public boolean selfValidate() {
        return !(c == null || c <= 0 || t == null || t <= 0 || StringUtils.isEmpty(i));
    }

    public Integer getC() {
        return c;
    }

    public void setC(Integer c) {
        this.c = c;
    }

    public Integer getT() {
        return t;
    }

    public void setT(Integer t) {
        this.t = t;
    }

    public String getI() {
        return i;
    }

    public void setI(String i) {
        this.i = i;
    }
}
